home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / GXPrinting.idl < prev    next >
Text File  |  1996-05-01  |  27KB  |  791 lines

  1. /*
  2.      File:        GXPrinting.idl
  3.  
  4.      Contains:    This file contains all printing APIs except for driver/extension specific ones.
  5.  
  6.      Version:    Technology:    Quickdraw GX 1.1
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __GXPRINTING_IDL__
  19. #define __GXPRINTING_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __COLLECTIONS_IDL__
  25. #include <Collections.idl>
  26. #endif
  27. #ifndef __CONDITIONALMACROS_IDL__
  28. #include <ConditionalMacros.idl>
  29. #endif
  30. #ifndef __DIALOGS_IDL__
  31. #include <Dialogs.idl>
  32. #endif
  33. #ifndef __ERRORS_IDL__
  34. #include <Errors.idl>
  35. #endif
  36. #ifndef __FILES_IDL__
  37. #include <Files.idl>
  38. #endif
  39. #ifndef __GXFONTS_IDL__
  40. #include <GXFonts.idl>
  41. #endif
  42. #ifndef __GXMATH_IDL__
  43. #include <GXMath.idl>
  44. #endif
  45. #ifndef __GXTYPES_IDL__
  46. #include <GXTypes.idl>
  47. #endif
  48. #ifndef __LISTS_IDL__
  49. #include <Lists.idl>
  50. #endif
  51. #ifndef __MENUS_IDL__
  52. #include <Menus.idl>
  53. #endif
  54. #ifndef __GXMESSAGES_IDL__
  55. #include <GXMessages.idl>
  56. #endif
  57. #ifndef __PRINTING_IDL__
  58. #include <Printing.idl>
  59. #endif
  60. #ifndef __QUICKDRAW_IDL__
  61. #include <Quickdraw.idl>
  62. #endif
  63.  
  64. #ifdef __SOMIDL__
  65.  
  66. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  67. /*
  68. *******************************************************************
  69.                     Start of old "GXPrintingManager.h/a/p" interface file.
  70.             ********************************************************************
  71. */
  72. /*
  73.  ------------------------------------------------------------------------------
  74.  
  75.                             Printing Manager API Contants and Types
  76.  
  77. -------------------------------------------------------------------------------- 
  78. */
  79. /* QuickDraw GX Printing Manager & Overall GX Gestalt Selectors */
  80. typedef unsigned long            gxOwnerSignature;
  81.  
  82. #if OLDROUTINENAMES
  83. typedef unsigned long            Signature;
  84.  
  85. #endif
  86. /*
  87.  
  88.     ABSTRACT DATA TYPES
  89.  
  90. */
  91. /*
  92.  typedef struct gxPrivatePrinterRecord *gxPrinter;
  93.  typedef struct gxPrivateJobRecord *gxJob;
  94.  typedef struct gxPrivateFormatRecord *gxFormat;
  95.  typedef struct gxPrivatePaperTypeRecord *gxPaperType;
  96.  typedef struct gxPrivatePrintFileRecord *gxPrintFile;
  97. */
  98. typedef OpaquePtr                gxPrinter;
  99.  
  100. typedef OpaquePtr                gxJob;
  101.  
  102. typedef OpaquePtr                gxFormat;
  103.  
  104. typedef OpaquePtr                gxPaperType;
  105.  
  106. typedef OpaquePtr                gxPrintFile;
  107.  
  108. /* Possible values for LoopStatus */
  109. typedef boolean                    gxLoopStatus;
  110.  
  111. typedef OpaquePtr GXViewDeviceProcPtr;
  112. typedef OpaquePtr GXViewDeviceUPP;
  113. typedef OpaquePtr GXFormatProcPtr;
  114. typedef OpaquePtr GXFormatUPP;
  115. typedef OpaquePtr GXPaperTypeProcPtr;
  116. typedef OpaquePtr GXPaperTypeUPP;
  117. typedef OpaquePtr GXPrintingFlattenProcPtr;
  118. typedef OpaquePtr GXPrintingFlattenUPP;
  119. #if OLDROUTINENAMES
  120. typedef GXViewDeviceProcPtr        gxViewDeviceProc;
  121.  
  122. typedef GXFormatProcPtr            gxFormatProc;
  123.  
  124. typedef GXPaperTypeProcPtr        gxPaperTypeProc;
  125.  
  126. typedef GXPrintingFlattenProcPtr gxPrintingFlattenProc;
  127.  
  128. #endif
  129. /*
  130.     The following constants are used to set collection item flags in printing
  131.     collections. The Printing Manager purges certain items whenever a driver
  132.     switch occurs. If the formatting driver changes, all items marked as
  133.     gxVolatileFormattingDriverCategory will be purged.  If the output driver
  134.     changes, all items marked as gxVolatileOutputDriverCategory will be purged.
  135.     Note that to prevent items from being flattened when GXFlattenJob is called,
  136.     you should unset the collectionPersistenceBit (defined in Collections.h),
  137.     which is on by default.
  138. */
  139. /* Structure stored in collection items' user attribute bits */
  140. typedef short                    gxCollectionCategory;
  141.  
  142. /*
  143.  
  144.     >>>>>> JOB COLLECTION ITEMS <<<<<<
  145.  
  146. */
  147. /* gxJobInfo COLLECTION ITEM */
  148. typedef SOMLargeStruct            gxJobInfo;                    /* Derived from a struct of 118 bytes in size */
  149.  
  150. /* gxPDDDefaultSettingTag COLLECTION ITEM */
  151. typedef SOMTwoByteStruct        gxPDDDefaultSettingInfo;    /* Derived from a struct of 2 bytes in size */
  152.  
  153. /* priority field constants */
  154. /* jobAlert field constants */
  155. /* jobTimeout field constants */
  156. /* gxCollationTag COLLECTION ITEM */
  157. typedef SOMTwoByteStruct        gxCollationInfo;            /* Derived from a struct of 2 bytes in size */
  158.  
  159. /* gxCopiesTag COLLECTION ITEM */
  160. typedef SOMFourByteStruct        gxCopiesInfo;                /* Derived from a struct of 4 bytes in size */
  161.  
  162. /* gxPageRangeTag COLLECTION ITEM */
  163. typedef SOMLargeStruct            gxSimplePageRangeInfo;        /* Derived from a struct of 10 bytes in size */
  164.  
  165. typedef SOMLargeStruct            gxPageRangeInfo;            /* Derived from a struct of 83 bytes in size */
  166.  
  167. /* optionChosen field constants for SimplePageRangeInfo */
  168. /* gxQualityTag COLLECTION ITEM */
  169. typedef SOMLargeStruct            gxQualityInfo;                /* Derived from a struct of 9 bytes in size */
  170.  
  171. /* gxFileDestinationTag COLLECTION ITEM */
  172. typedef SOMTwoByteStruct        gxFileDestinationInfo;        /* Derived from a struct of 2 bytes in size */
  173.  
  174. /* gxFileLocationTag COLLECTION ITEM */
  175. typedef SOMLargeStruct            gxFileLocationInfo;            /* Derived from a struct of 70 bytes in size */
  176.  
  177. /* gxFileFormatTag COLLECTION ITEM */
  178. typedef SOMLargeStruct            gxFileFormatInfo;            /* Derived from a struct of 32 bytes in size */
  179.  
  180. /* gxFileFontsTag COLLECTION ITEM */
  181. typedef SOMTwoByteStruct        gxFileFontsInfo;            /* Derived from a struct of 2 bytes in size */
  182.  
  183. /* includeFonts field constants */
  184. /* gxPaperFeedTag COLLECTION ITEM */
  185. typedef SOMTwoByteStruct        gxPaperFeedInfo;            /* Derived from a struct of 2 bytes in size */
  186.  
  187. /* gxTrayFeedTag COLLECTION ITEM */
  188. typedef long                    gxTrayIndex;
  189.  
  190. typedef SOMLargeStruct            gxTrayFeedInfo;                /* Derived from a struct of 6 bytes in size */
  191.  
  192. /* gxManualFeedTag COLLECTION ITEM */
  193. typedef SOMLargeStruct            gxManualFeedInfo;            /* Derived from a struct of 36 bytes in size */
  194.  
  195. /* gxNormalMappingTag COLLECTION ITEM */
  196. typedef SOMTwoByteStruct        gxNormalMappingInfo;        /* Derived from a struct of 2 bytes in size */
  197.  
  198. /* gxSpecialMappingTag COLLECTION ITEM */
  199. typedef SOMTwoByteStruct        gxSpecialMappingInfo;        /* Derived from a struct of 2 bytes in size */
  200.  
  201. /* specialMapping field constants */
  202. /* gxTrayMappingTag COLLECTION ITEM */
  203. typedef SOMFourByteStruct        gxTrayMappingInfo;            /* Derived from a struct of 4 bytes in size */
  204.  
  205. /* gxPaperMappingTag COLLECTION ITEM */
  206. /* This collection item contains a flattened paper type resource */
  207. /* gxPrintPanelTag COLLECTION ITEM */
  208. typedef SOMLargeStruct            gxPrintPanelInfo;            /* Derived from a struct of 32 bytes in size */
  209.  
  210. /* gxFormatPanelTag COLLECTION ITEM */
  211. typedef SOMLargeStruct            gxFormatPanelInfo;            /* Derived from a struct of 32 bytes in size */
  212.  
  213. /* gxTranslatedDocumentTag COLLECTION ITEM */
  214. typedef SOMFourByteStruct        gxTranslatedDocumentInfo;    /* Derived from a struct of 4 bytes in size */
  215.  
  216. /* gxCoverPageTag COLLECTION ITEM */
  217. typedef SOMFourByteStruct        gxCoverPageInfo;            /* Derived from a struct of 4 bytes in size */
  218.  
  219. /*
  220.  
  221.     >>>>>> FORMAT COLLECTION ITEMS <<<<<<
  222.  
  223. */
  224. /* gxPaperTypeLockTag COLLECTION ITEM */
  225. typedef SOMTwoByteStruct        gxPaperTypeLockInfo;        /* Derived from a struct of 2 bytes in size */
  226.  
  227. /* gxOrientationTag COLLECTION ITEM */
  228. typedef SOMTwoByteStruct        gxOrientationInfo;            /* Derived from a struct of 2 bytes in size */
  229.  
  230. /* orientation field constants */
  231. /* gxScalingTag COLLECTION ITEM */
  232. typedef SOMLargeStruct            gxScalingInfo;                /* Derived from a struct of 12 bytes in size */
  233.  
  234. /* gxDirectModeTag COLLECTION ITEM */
  235. typedef SOMTwoByteStruct        gxDirectModeInfo;            /* Derived from a struct of 2 bytes in size */
  236.  
  237. /* gxFormatHalftoneTag COLLECTION ITEM */
  238. typedef SOMLargeStruct            gxFormatHalftoneInfo;        /* Derived from a struct of 56 bytes in size */
  239.  
  240. /* gxInvertPageTag COLLECTION ITEM */
  241. typedef SOMTwoByteStruct        gxInvertPageInfo;            /* Derived from a struct of 2 bytes in size */
  242.  
  243. /* gxFlipPageHorizontalTag COLLECTION ITEM */
  244. typedef SOMTwoByteStruct        gxFlipPageHorizontalInfo;    /* Derived from a struct of 2 bytes in size */
  245.  
  246. /* gxFlipPageVerticalTag COLLECTION ITEM */
  247. typedef SOMTwoByteStruct        gxFlipPageVerticalInfo;        /* Derived from a struct of 2 bytes in size */
  248.  
  249. /* gxPreciseBitmapsTag COLLECTION ITEM */
  250. typedef SOMTwoByteStruct        gxPreciseBitmapInfo;        /* Derived from a struct of 2 bytes in size */
  251.  
  252. /*
  253.  
  254.     >>>>>> PAPERTYPE COLLECTION ITEMS <<<<<<
  255.  
  256. */
  257. /* gxBaseTag COLLECTION ITEM */
  258. typedef SOMFourByteStruct        gxBaseInfo;                    /* Derived from a struct of 4 bytes in size */
  259.  
  260. /* baseType field constants */
  261. /* gxCreatorTag COLLECTION ITEM */
  262. typedef SOMFourByteStruct        gxCreatorInfo;                /* Derived from a struct of 4 bytes in size */
  263.  
  264. /* gxUnitsTag COLLECTION ITEM */
  265. typedef SOMTwoByteStruct        gxUnitsInfo;                /* Derived from a struct of 2 bytes in size */
  266.  
  267. /* units field constants */
  268. /* gxFlagsTag COLLECTION ITEM */
  269. typedef SOMFourByteStruct        gxFlagsInfo;                /* Derived from a struct of 4 bytes in size */
  270.  
  271. /* flags field constants */
  272. /* gxCommentTag COLLECTION ITEM */
  273. typedef SOMLargeStruct            gxCommentInfo;                /* Derived from a struct of 256 bytes in size */
  274.  
  275. /*
  276.  
  277.     >>>>>> PRINTER VIEWDEVICE TAGS <<<<<<
  278.  
  279. */
  280. /* gxPenTableTag COLLECTION ITEM */
  281. typedef SOMLargeStruct            gxPenTableEntry;            /* Derived from a struct of 56 bytes in size */
  282.  
  283. typedef SOMLargeStruct            gxPenTable;                    /* Derived from a struct of 60 bytes in size */
  284.  
  285. typedef OpaquePtr                gxPenTablePtr;                /* Substituted OpaquePtr for ``gxPenTable*'' */
  286.  
  287. typedef OpaquePtr                gxPenTableHdl;                /* Substituted OpaquePtr for ``gxPenTablePtr*'' */
  288.  
  289. /* penUnits field constants */
  290. /* penPosition field constants */
  291. /*
  292.  
  293.     >>>>>> DIALOG-RELATED CONSTANTS AND TYPES <<<<<<
  294.  
  295. */
  296. typedef long                    gxDialogResult;
  297.  
  298. typedef SOMLargeStruct            gxEditMenuRecord;            /* Derived from a struct of 12 bytes in size */
  299.  
  300. /*
  301.  
  302.     >>>>>> JOB FORMAT MODE CONSTANTS AND TYPES <<<<<<
  303.  
  304. */
  305. typedef OSType                    gxJobFormatMode;
  306.  
  307. typedef SOMLargeStruct            gxJobFormatModeTable;        /* Derived from a struct of 8 bytes in size */
  308.  
  309. typedef OpaquePtr                gxJobFormatModeTablePtr;    /* Substituted OpaquePtr for ``gxJobFormatModeTable*'' */
  310.  
  311. typedef OpaquePtr                gxJobFormatModeTableHdl;    /* Substituted OpaquePtr for ``gxJobFormatModeTablePtr*'' */
  312.  
  313. typedef long                    gxQueryType;
  314.  
  315. /* Structures used for Text mode field constants */
  316. typedef SOMLargeStruct            gxPositionConstraintTable;    /* Derived from a struct of 24 bytes in size */
  317.  
  318. typedef OpaquePtr                gxPositionConstraintTablePtr; /* Substituted OpaquePtr for ``gxPositionConstraintTable*'' */
  319.  
  320. typedef OpaquePtr                gxPositionConstraintTableHdl; /* Substituted OpaquePtr for ``gxPositionConstraintTablePtr*'' */
  321.  
  322. /* numSizes field constants */
  323. typedef SOMLargeStruct            gxStyleNameTable;            /* Derived from a struct of 260 bytes in size */
  324.  
  325. typedef OpaquePtr                gxStyleNameTablePtr;        /* Substituted OpaquePtr for ``gxStyleNameTable*'' */
  326.  
  327. typedef OpaquePtr                gxStyleNameTableHdl;        /* Substituted OpaquePtr for ``gxStyleNameTablePtr*'' */
  328.  
  329. typedef SOMLargeStruct            gxFontTable;                /* Derived from a struct of 8 bytes in size */
  330.  
  331. typedef OpaquePtr                gxFontTablePtr;                /* Substituted OpaquePtr for ``gxFontTable*'' */
  332.  
  333. typedef OpaquePtr                gxFontTableHdl;                /* Substituted OpaquePtr for ``gxFontTablePtr*'' */
  334.  
  335. /*
  336.  ------------------------------------------------------------------------------
  337.  
  338.                                 Printing Manager API Functions
  339.  
  340. -------------------------------------------------------------------------------- 
  341. */
  342. /*
  343.     Global Routines
  344. */
  345. /*
  346.     Error-Handling Routines
  347. */
  348. /*
  349.     Job Routines
  350. */
  351. #endif
  352. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  353. #endif
  354. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  355. /*
  356.     Job Format Modes Routines
  357. */
  358. /*
  359.     Format Routines
  360. */
  361. /*
  362.     PaperType Routines
  363. */
  364. /*
  365.     Printer Routines
  366. */
  367. /*
  368.     Dialog Routines
  369. */
  370. /*
  371.     Spooling Routines
  372. */
  373. /*
  374.     PrintFile Routines
  375. */
  376. /*
  377.     ColorSync Routines
  378. */
  379. /*
  380. ***********************************************************************
  381.                         Start of old "GXPrintingResEquates.h/a/p" interface file.
  382.                 ************************************************************************
  383. */
  384. /*
  385.     ------------------------------------
  386.                 Basic client types
  387.     ------------------------------------ 
  388. */
  389. /* All pre-defined printing collection items have this ID */
  390. /*
  391.     ----------------------------------------------------------------------
  392.  
  393.         Resource types and IDs used by both extension and driver writers
  394.  
  395.     ---------------------------------------------------------------------- 
  396. */
  397. /* Resources in a printer driver or extension must be based off of these IDs */
  398. /*
  399.     Override resources tell the system what messages a driver or extension
  400.         is overriding.  A driver may have a series of these resources. 
  401. */
  402. /* Override resource type for 68k resource-based code:*/
  403. /* Override resource type for PowerPC datafork-based code:*/
  404. /*
  405.     --------------------------------------------------------------
  406.  
  407.         Message ID definitions by both extension and driver writers
  408.  
  409.     --------------------------------------------------------------- 
  410. */
  411. /* Identifiers for universal message overrides. */
  412. /* Identifiers for Quickdraw message overrides. */
  413. /* Identifiers for raster imaging message overrides. */
  414. /* Identifiers for PostScript imaging message overrides. */
  415. /* Identifiers for Vector imaging message overrides. */
  416. /* Dialog related resource types */
  417. /* Communication resource types */
  418. /*
  419.     The looker resource is used by the Chooser PACK to determine what kind
  420.     of communications this driver supports. (In order to generate/handle the 
  421.     pop-up menu for "Connect via:".
  422.     
  423.     The looker resource is also used by PrinterShare to determine the AppleTalk NBP Type
  424.     for servers created for this driver.
  425. */
  426. /* The communications method and private data used to connect to the printer */
  427. /*
  428.     -------------------------------------------------
  429.  
  430.     Resource types and IDs used by extension writers
  431.  
  432.     ------------------------------------------------- 
  433. */
  434. /*
  435.     -----------------------------------------------
  436.  
  437.     Resource types and IDs used by driver writers
  438.  
  439.     ----------------------------------------------- 
  440. */
  441. /* IMAGING RESOURCES */
  442. /*
  443.     The imaging system resource specifies which imaging system a printer
  444.         driver wishes to use. 
  445. */
  446. /* 'exft' resource ID -- exclude font list */
  447. /* Resource for type for color matching */
  448. /* Resource type and id for the tray count */
  449. /* Resource type for the tray names */
  450. /* Resource type for manual feed preferences, stored in DTP. */
  451. /* Resource type for desktop printer output characteristics, stored in DTP. */
  452. /* IO Resources */
  453. /* Resource type and ID for default IO and buffering resources */
  454. /*
  455.     Resource types and IDs for default implementation of CaptureOutputDevice.
  456.         The default implementation of CaptureOutputDevice only handles PAP devices 
  457. */
  458. /* Resource type and ID for custom halftone matrix */
  459. /* Resource type and ID for raster driver rendering preferences */
  460. /* Resource type for specifiying a colorset */
  461. /* Resource type and ID for raster driver packaging preferences */
  462. /* Resource type and ID for raster driver packaging options */
  463. /* Resource type for the PostScript imaging system procedure set control resource */
  464. /* Resource type for the PostScript imaging system printer font resource */
  465. /* Resource type and ID for the PostScript imaging system imaging preferences */
  466. /* Resource type and ID for the PostScript imaging system default scanning code */
  467. /* Old Application Support Resources */
  468. /*
  469.     The default implementation of gxPrintDefault loads and
  470.     PrValidates a print record stored in the following driver resource. 
  471. */
  472. /*
  473.     -----------------------------------------------
  474.  
  475.     Resource types and IDs used in papertype files
  476.  
  477.     -----------------------------------------------
  478. */
  479. /* Resource type and ID for driver papertypes placed in individual files */
  480. /* Papertype creator types */
  481. /*
  482. ********************************************************************
  483.                     Start of old "GXPrintingMessages.h/a/p" interface file.
  484.             *********************************************************************
  485. */
  486. /*
  487.  ------------------------------------------------------------------------------
  488.  
  489.                                     Constants and Types
  490.  
  491. -------------------------------------------------------------------------------- 
  492. */
  493. /*
  494.  
  495.     ABSTRACT DATA TYPES
  496.  
  497. */
  498. typedef OpaquePtr                gxSpoolFile;
  499.  
  500. /*
  501.  
  502.     DIALOG PANEL CONSTANTS AND TYPES
  503.  
  504. */
  505. typedef long                    gxPanelEvent;
  506.  
  507. /* Dialog panel event equates */
  508. /* Constants for panel responses to dialog handler calls */
  509. typedef long                    gxPanelResult;
  510.  
  511. /* Panel event info record for FilterPanelEvent and HandlePanelEvent messages */
  512. typedef SOMLargeStruct            gxPanelInfoRecord;            /* Derived from a struct of 30 bytes in size */
  513.  
  514. /* Constants for the evtAction field in PanelInfoRecord */
  515. /* Constants for the panelKind field in gxPanelSetupRecord */
  516. typedef long                    gxPrintingPanelKind;
  517.  
  518. /* The gxPanelSetupInfo structure is passed to GXSetupDialogPanel */
  519. typedef SOMLargeStruct            gxPanelSetupRecord;            /* Derived from a struct of 12 bytes in size */
  520.  
  521. /* Constants returned by gxParsePageRange message */
  522. typedef long                    gxParsePageRangeResult;
  523.  
  524. /*
  525.  
  526.     STATUS-RELATED CONSTANTS AND TYPES
  527.  
  528. */
  529. /* Structure for status messages */
  530. typedef SOMLargeStruct            gxStatusRecord;                /* Derived from a struct of 19 bytes in size */
  531.  
  532. /* Constants for statusType field of gxStatusRecord */
  533. /* Structure for gxWriteStatusToDTPWindow message */
  534. typedef SOMLargeStruct            gxDisplayRecord;            /* Derived from a struct of 262 bytes in size */
  535.  
  536. /*-----------------------------------------------*/
  537. /* paper mapping-related constants and types...  */
  538. /*-----------------------------------------------*/
  539. typedef long                    gxTrayMapping;
  540.  
  541. /*
  542.  ------------------------------------------------------------------------------
  543.  
  544.                 API Functions callable only from within message overrides
  545.  
  546. -------------------------------------------------------------------------------- 
  547. */
  548. /*
  549.     Message Sending API Routines
  550. */
  551. #if !GENERATINGPOWERPC
  552. #endif
  553. /*
  554.  
  555.     How to use the GXPRINTINGDISPATCH macro...
  556.     
  557.     If your driver or extension is large, you may want to segment it
  558.     across smaller boundaries than is permitted by the messaging system.
  559.     Without using the Printing Manager's segmentation manager directly,
  560.     the smallest segment you can create consists of the code to override
  561.     a single message.  If you are overriding workhorse messages such as
  562.     RenderPage, you may want to divide up the work among many functions
  563.     distributed across several segments.  Here's how...
  564.     
  565.     The Printing Manager segment scheme involves the construction of a
  566.     single 32-bit dispatch selector, which contains all the information
  567.     necessary for the dispatcher to find a single routine.  It contains the
  568.     segment's resource ID, and the offset within the segment which contains
  569.     the start of the routine.  The GXPRINTINGDISPATCH macro will construct the
  570.     dispatch selector for you, as well as the code to do the dispatch.
  571.     
  572.     Usually, it is convenient to start your segment with a long aligned jump table,
  573.     beginning after the 4 byte header required by the Printing Manager.  The
  574.     macro assumes this is the case and takes a 1-based routine selector from
  575.     which it conmstructs the offset.
  576.     
  577.     For example, if your code is in resource 'pdvr' (print driver), ID=2
  578.     at offset=12 (third routine in segment), you would declare your
  579.     routine as follows:
  580.     
  581.     OSErr MyRenderingRoutine (long param1, Ptr param2)
  582.         = GXPRINTINGDISPATCH(2, 3);
  583.         
  584.     Remember, ALL segment dispatches must return OSErr.  If your routine
  585.     does not generate errors, you must still declare it to return OSErr
  586.     and have the routine itself return noErr.
  587.     
  588.     An alternative way to call across segments is to call the GXPrintingDispatch
  589.     function directly.  You must construct the 32-bit selector yourself and pass
  590.     it as the first parameter.  This is usually not preferable since you don't get
  591.     type-checking unless you declare a prototype as shown above, and your code
  592.     isn't as easy to read.
  593.     
  594.     So given the above prototype, there are two ways to call the function:
  595.     
  596.         anErr = MyRenderingRoutine(p1, p2);            // Free type checking!
  597.         
  598.     or:
  599.     
  600.         #define kMyRenderRoutineSelector 0x0002000C
  601.         anErr = GXPrintingDispatch(kMyRenderRoutineSelector, p1, p2);        // No type-checking!
  602.     
  603.     
  604.     Both have the same effect.
  605.  
  606. */
  607. /*
  608.  ------------------------------------------------------------------------------
  609.  
  610.                     Constants and types for Universal Printing Messages
  611.  
  612. -------------------------------------------------------------------------------- 
  613. */
  614. /* Options for gxCreateSpoolFile message */
  615. /* Options for gxCloseSpoolFile message */
  616. /* Options for gxCreateImageFile message */
  617. /* Options for gxBufferData message */
  618. /* Structure for gxDumpBuffer and gxFreeBuffer messages */
  619. typedef SOMLargeStruct            gxPrintingBuffer;            /* Derived from a struct of 9 bytes in size */
  620.  
  621. /* Structure for gxRenderPage message */
  622. typedef SOMLargeStruct            gxPageInfoRecord;            /* Derived from a struct of 14 bytes in size */
  623.  
  624. /*
  625.  ------------------------------------------------------------------------------
  626.  
  627.                                 Universal Printing Messages
  628.  
  629. -------------------------------------------------------------------------------- 
  630. */
  631. typedef OpaquePtr GXJobIdleProcPtr;
  632. typedef OpaquePtr GXJobIdleUPP;
  633. typedef OpaquePtr GXJobStatusProcPtr;
  634. typedef OpaquePtr GXJobStatusUPP;
  635. typedef OpaquePtr GXPrintingEventProcPtr;
  636. typedef OpaquePtr GXPrintingEventUPP;
  637. typedef OpaquePtr GXJobDefaultFormatDialogProcPtr;
  638. typedef OpaquePtr GXJobDefaultFormatDialogUPP;
  639. typedef OpaquePtr GXFormatDialogProcPtr;
  640. typedef OpaquePtr GXFormatDialogUPP;
  641. typedef OpaquePtr GXJobPrintDialogProcPtr;
  642. typedef OpaquePtr GXJobPrintDialogUPP;
  643. typedef OpaquePtr GXFilterPanelEventProcPtr;
  644. typedef OpaquePtr GXFilterPanelEventUPP;
  645. typedef OpaquePtr GXHandlePanelEventProcPtr;
  646. typedef OpaquePtr GXHandlePanelEventUPP;
  647. typedef OpaquePtr GXParsePageRangeProcPtr;
  648. typedef OpaquePtr GXParsePageRangeUPP;
  649. typedef OpaquePtr GXDefaultJobProcPtr;
  650. typedef OpaquePtr GXDefaultJobUPP;
  651. typedef OpaquePtr GXDefaultFormatProcPtr;
  652. typedef OpaquePtr GXDefaultFormatUPP;
  653. typedef OpaquePtr GXDefaultPaperTypeProcPtr;
  654. typedef OpaquePtr GXDefaultPaperTypeUPP;
  655. typedef OpaquePtr GXDefaultPrinterProcPtr;
  656. typedef OpaquePtr GXDefaultPrinterUPP;
  657. typedef OpaquePtr GXCreateSpoolFileProcPtr;
  658. typedef OpaquePtr GXCreateSpoolFileUPP;
  659. typedef OpaquePtr GXSpoolPageProcPtr;
  660. typedef OpaquePtr GXSpoolPageUPP;
  661. typedef OpaquePtr GXSpoolDataProcPtr;
  662. typedef OpaquePtr GXSpoolDataUPP;
  663. typedef OpaquePtr GXSpoolResourceProcPtr;
  664. typedef OpaquePtr GXSpoolResourceUPP;
  665. typedef OpaquePtr GXCompleteSpoolFileProcPtr;
  666. typedef OpaquePtr GXCompleteSpoolFileUPP;
  667. typedef OpaquePtr GXCountPagesProcPtr;
  668. typedef OpaquePtr GXCountPagesUPP;
  669. typedef OpaquePtr GXDespoolPageProcPtr;
  670. typedef OpaquePtr GXDespoolPageUPP;
  671. typedef OpaquePtr GXDespoolDataProcPtr;
  672. typedef OpaquePtr GXDespoolDataUPP;
  673. typedef OpaquePtr GXDespoolResourceProcPtr;
  674. typedef OpaquePtr GXDespoolResourceUPP;
  675. typedef OpaquePtr GXCloseSpoolFileProcPtr;
  676. typedef OpaquePtr GXCloseSpoolFileUPP;
  677. typedef OpaquePtr GXStartJobProcPtr;
  678. typedef OpaquePtr GXStartJobUPP;
  679. typedef OpaquePtr GXFinishJobProcPtr;
  680. typedef OpaquePtr GXFinishJobUPP;
  681. typedef OpaquePtr GXStartPageProcPtr;
  682. typedef OpaquePtr GXStartPageUPP;
  683. typedef OpaquePtr GXFinishPageProcPtr;
  684. typedef OpaquePtr GXFinishPageUPP;
  685. typedef OpaquePtr GXPrintPageProcPtr;
  686. typedef OpaquePtr GXPrintPageUPP;
  687. typedef OpaquePtr GXSetupImageDataProcPtr;
  688. typedef OpaquePtr GXSetupImageDataUPP;
  689. typedef OpaquePtr GXImageJobProcPtr;
  690. typedef OpaquePtr GXImageJobUPP;
  691. typedef OpaquePtr GXImageDocumentProcPtr;
  692. typedef OpaquePtr GXImageDocumentUPP;
  693. typedef OpaquePtr GXImagePageProcPtr;
  694. typedef OpaquePtr GXImagePageUPP;
  695. typedef OpaquePtr GXRenderPageProcPtr;
  696. typedef OpaquePtr GXRenderPageUPP;
  697. typedef OpaquePtr GXCreateImageFileProcPtr;
  698. typedef OpaquePtr GXCreateImageFileUPP;
  699. typedef OpaquePtr GXOpenConnectionProcPtr;
  700. typedef OpaquePtr GXOpenConnectionUPP;
  701. typedef OpaquePtr GXCloseConnectionProcPtr;
  702. typedef OpaquePtr GXCloseConnectionUPP;
  703. typedef OpaquePtr GXStartSendPageProcPtr;
  704. typedef OpaquePtr GXStartSendPageUPP;
  705. typedef OpaquePtr GXFinishSendPageProcPtr;
  706. typedef OpaquePtr GXFinishSendPageUPP;
  707. typedef OpaquePtr GXWriteDataProcPtr;
  708. typedef OpaquePtr GXWriteDataUPP;
  709. typedef OpaquePtr GXBufferDataProcPtr;
  710. typedef OpaquePtr GXBufferDataUPP;
  711. typedef OpaquePtr GXDumpBufferProcPtr;
  712. typedef OpaquePtr GXDumpBufferUPP;
  713. typedef OpaquePtr GXFreeBufferProcPtr;
  714. typedef OpaquePtr GXFreeBufferUPP;
  715. typedef OpaquePtr GXCheckStatusProcPtr;
  716. typedef OpaquePtr GXCheckStatusUPP;
  717. typedef OpaquePtr GXGetDeviceStatusProcPtr;
  718. typedef OpaquePtr GXGetDeviceStatusUPP;
  719. typedef OpaquePtr GXFetchTaggedDataProcPtr;
  720. typedef OpaquePtr GXFetchTaggedDataUPP;
  721. #endif
  722. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  723. typedef OpaquePtr GXGetDTPMenuListProcPtr;
  724. typedef OpaquePtr GXGetDTPMenuListUPP;
  725. #endif
  726. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  727. typedef OpaquePtr GXDTPMenuSelectProcPtr;
  728. typedef OpaquePtr GXDTPMenuSelectUPP;
  729. typedef OpaquePtr GXHandleAlertFilterProcPtr;
  730. typedef OpaquePtr GXHandleAlertFilterUPP;
  731. typedef OpaquePtr GXJobFormatModeQueryProcPtr;
  732. typedef OpaquePtr GXJobFormatModeQueryUPP;
  733. typedef OpaquePtr GXWriteStatusToDTPWindowProcPtr;
  734. typedef OpaquePtr GXWriteStatusToDTPWindowUPP;
  735. typedef OpaquePtr GXInitializeStatusAlertProcPtr;
  736. typedef OpaquePtr GXInitializeStatusAlertUPP;
  737. typedef OpaquePtr GXHandleAlertStatusProcPtr;
  738. typedef OpaquePtr GXHandleAlertStatusUPP;
  739. typedef OpaquePtr GXHandleAlertEventProcPtr;
  740. typedef OpaquePtr GXHandleAlertEventUPP;
  741. typedef OpaquePtr GXCleanupStartJobProcPtr;
  742. typedef OpaquePtr GXCleanupStartJobUPP;
  743. typedef OpaquePtr GXCleanupStartPageProcPtr;
  744. typedef OpaquePtr GXCleanupStartPageUPP;
  745. typedef OpaquePtr GXCleanupOpenConnectionProcPtr;
  746. typedef OpaquePtr GXCleanupOpenConnectionUPP;
  747. typedef OpaquePtr GXCleanupStartSendPageProcPtr;
  748. typedef OpaquePtr GXCleanupStartSendPageUPP;
  749. typedef OpaquePtr GXDefaultDesktopPrinterProcPtr;
  750. typedef OpaquePtr GXDefaultDesktopPrinterUPP;
  751. typedef OpaquePtr GXCaptureOutputDeviceProcPtr;
  752. typedef OpaquePtr GXCaptureOutputDeviceUPP;
  753. typedef OpaquePtr GXOpenConnectionRetryProcPtr;
  754. typedef OpaquePtr GXOpenConnectionRetryUPP;
  755. typedef OpaquePtr GXExamineSpoolFileProcPtr;
  756. typedef OpaquePtr GXExamineSpoolFileUPP;
  757. typedef OpaquePtr GXFinishSendPlaneProcPtr;
  758. typedef OpaquePtr GXFinishSendPlaneUPP;
  759. typedef OpaquePtr GXDoesPaperFitProcPtr;
  760. typedef OpaquePtr GXDoesPaperFitUPP;
  761. #endif
  762. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  763. typedef OpaquePtr GXChooserMessageProcPtr;
  764. typedef OpaquePtr GXChooserMessageUPP;
  765. #endif
  766. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  767. typedef OpaquePtr GXFindPrinterProfileProcPtr;
  768. typedef OpaquePtr GXFindPrinterProfileUPP;
  769. typedef OpaquePtr GXFindFormatProfileProcPtr;
  770. typedef OpaquePtr GXFindFormatProfileUPP;
  771. typedef OpaquePtr GXSetPrinterProfileProcPtr;
  772. typedef OpaquePtr GXSetPrinterProfileUPP;
  773. typedef OpaquePtr GXSetFormatProfileProcPtr;
  774. typedef OpaquePtr GXSetFormatProfileUPP;
  775. typedef OpaquePtr GXHandleAltDestinationProcPtr;
  776. typedef OpaquePtr GXHandleAltDestinationUPP;
  777. typedef OpaquePtr GXSetupPageImageDataProcPtr;
  778. typedef OpaquePtr GXSetupPageImageDataUPP;
  779. /*
  780. ******************************************************************
  781.                     Start of old "GXPrintingErrors.h/a/p" interface file.
  782.             *******************************************************************
  783. */
  784. /*RESULT CODES FOR QUICKDRAW GX PRINTING OPERATIONS*/
  785. #endif
  786.  
  787. #endif /* __SOMIDL__ */
  788.  
  789. #endif /* __GXPRINTING_IDL__ */
  790.  
  791.